package cn.drenal.capcap.service;

import cn.drenal.capcap.entity.User;
import cn.drenal.capcap.entity.dto.UserDTO;
import cn.drenal.capcap.entity.vo.UserListVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 用户服务接口
 */
public interface UserService extends IService<User> {
    /**
     * 创建用户
     *
     * @param userDTO 用户信息
     * @return 创建结果
     */
    User createUser(UserDTO userDTO);

    /**
     * 更新用户信息
     *
     * @param id 用户ID
     * @param userDTO 用户信息
     * @return 更新结果
     */
    User updateUser(Long id, UserDTO userDTO);

    /**
     * 删除用户
     *
     * @param id 用户ID
     */
    void deleteUser(Long id);

    /**
     * 分页查询用户列表
     *
     * @param page 分页参数
     * @param username 用户名（模糊查询）
     * @param nickname 昵称（模糊查询）
     * @param phone 手机号（模糊查询）
     * @return 用户列表
     */
    Page<UserListVO> getUserList(Page<User> page, String username, String nickname, String phone);

    /**
     * 根据ID查询用户
     *
     * @param id 用户ID
     * @return 用户信息
     */
    User getUserById(Long id);
}